In the field of 3D computer graphics, 3D modeling is used to modify the shape or pose of geometry meshes. Geometry meshes typically contain vertices with coordinates in 3D space (x,y,z) along the Cartesian axis, that are connected to form a continuous surface of faces whose edges link these vertices together. These faces are typically triangles connecting three vertices, or quadrilaterals connecting four vertices. Geometry meshes are used to represent the visual shape of 3D objects such as human characters, cars, and buildings, on a computer. One part of modeling a 3D object is to articulate its geometry mesh to give a particularly dramatic pose or characteristic look to the object.
Using a traditional 3D modeling tool to pose a 3D object generally requires the creation of a virtual skeleton by a computer artist and the rigging, or binding, of the geometry mesh to the virtual skeleton. A virtual skeleton is a connected set of bones, and binding the mesh to the skeleton associates each vertex of the geometry mesh to one or more bones on the mesh. A weight is also assigned to each vertex-to-bone association for allowing movement of skin near the joints of two bones to be influenced by both bones based on the assigned weight. The binding of the geometry mesh to virtual bones is also referred to as skinning the mesh. After skinning of the mesh, the user can pose or animate the geometry mesh so that it appears to be walking, for example, or move the bones to produce a dramatic pose for a poster or web image. The posing via a virtual skeleton allows posing to be defined by posing the bones, instead of vertex-by-vertex posing.
Skeletal animation or posing generally requires computer artists to be skilled at constructing virtual skeletons and binding geometry meshes to them. This ability requires significant training. In addition, the binding process generally requires many iterations of the artist painting weights on the geometry mesh for each bone, and previewing the results, in order to get a mesh binding that moves naturally as the virtual skeleton is moved to produce a pose. Even if the artist is producing sample work and wants to quickly pose the mesh, the artist nonetheless goes through this tedious process of assigning weights or manually moving the vertices of the mesh. The tediousness is exacerbated by high polygon counts in a typical geometry mesh used to produce high quality work, and correspondingly high vertex counts.
The prior art aims to facilitate the selection of a portion of a 3D object that is to be posed via different selection tools. Exemplary selection tools include virtual brushes, lassos, or rectangular selection boxes. For example, if the artist wants to pose the arm of a 3D object via lasso selection, he or she carefully manipulates the lasso selection tool to place a lasso on the entire arm that is to be posed. However, if a portion of the arm to be posed is hidden behind another object, such as, for example, inside a pocket, placing the lasso around the hand would generally require the artist to zoom in or otherwise maneuver the available views to ensure that the lasso is wrapped around the arm and not any other intervening objects.
Accordingly, what is desired is a more efficient and intuitive system and method for posing and reshaping a geometry mesh.